home *** CD-ROM | disk | FTP | other *** search
-
- /***************************************************************
- * *
- * Ä»pÑñѽѡ¿Ñ Γ¿»á ¿ß»«½∞ºπѼ«ú« ó¿ñÑ«áñá»ΓÑpá *
- * *
- * ÇóΓ«p: æ«»¿¡ Ç.ê. éâô, é«p«¡Ñª, 1992 ú. *
- * ------ *
- * *
- * Æ¿» áñá»ΓÑpá ó«ºópáΘáÑΓß∩ ó ßΓp«¬Ñ char VTYPE [4]: *
- * *
- * MDA -¼«¡«σp«¼¡δ⌐ áñá»ΓÑp *
- * CGA -áñá»ΓÑp Γ¿»á CGA *
- * MCGA -áñá»ΓÑp Γ¿»á MCGA *
- * EGA -áñá»ΓÑp Γ¿»á EGA *
- * *
- * *
- ****************************************************************/
-
- #include <dos.h>
-
- int EGACGA ();
-
- int MCGAVGA ();
-
-
- void CVIDEO (char *VTYPE)
-
-
- {
-
-
-
- union REGS regs;
-
-
- char AL, BL;
-
-
- regs.x.ax = 0x1a00; /* τΓÑ¡¿Ñ ΓѬπΘÑú« pѪ¿¼á */
-
- int86 (0x10, ®s, ®s);
-
- AL = regs.h.al;
-
- BL = regs.h.bl;
-
- /*-------------------------------------------------------------------------*/
-
- /* Åp«óÑp¬á áñá»ΓÑp«ó, ¬p«¼Ñ VGA ¿½¿ MCGA */
-
- strcpy (VTYPE, "MDA ");
-
- if (AL != 0x1a) /* not VGA or not MCGA ? */
- {
-
- /* Åp«óÑp¬á ¡á½¿τ¿∩ áñá»ΓÑp«ó MDA, CGA, EGA */
-
- if (EGACGA () == 0) return;
-
- if (EGACGA () == 1)
- {
- strcpy (VTYPE, "CGA "); return;
- }
-
- if (EGACGA () == 3)
- {
- strcpy (VTYPE, "EGA "); return;
- }
- }
-
- /*-------------------------------------------------------------------------*/
-
- /* Åp«óÑp¬á ¡á½¿τ¿∩ áñá»ΓÑp«ó MDA, VGA ¿½¿ MCGA */
-
- else /* AL == 0x1a */
-
- {
- if (BL < 2) return; /* MDA */
-
- if (BL == 2) /* CGA */
- {
- strcpy (VTYPE, "CGA "); return;
- }
-
- if (BL <= 5)
- {
- if (EGACGA () == 0) return; /* MDA */
-
- if (EGACGA () == 1) /* CGA */
- {
- strcpy (VTYPE, "CGA "); return;
- }
-
- if (EGACGA () == 3) /* EGA */
- {
- strcpy (VTYPE, "EGA "); return;
- }
- }
-
- else
- {
-
- if (MCGAVGA (BL) == 2) /* MCGA */
- {
- strcpy (VTYPE, "MCGA"); return;
- }
-
- if (MCGAVGA (BL) == 4) /* VGA */
- {
- strcpy (VTYPE, "VGA "); return;
- }
- }
-
- }
-
- } /* End CVIDEO */
-
-
-
- /***************************************************************
- * *
- * Ä»pÑñѽѡ¿Ñ ¡á½¿τ¿∩ áñá»ΓÑp«ó MCGA, VGA *
- * *
- * éδσ«ñ¡«Ñ º¡áτÑ¡¿Ñ: *
- * ------------------ *
- * 2 -Γ¿» áñá»ΓÑpá MCGA *
- * *
- * 4 -Γ¿» áñá»ΓÑpá VGA *
- * *
- * *
- ****************************************************************/
-
-
- int MCGAVGA (char BL)
-
-
- {
- if (BL > 8) return (2);
-
- else return (4);
- }
-
-
- /***************************************************************
- * *
- * Ä»pÑñѽѡ¿Ñ ¡á½¿τ¿∩ áñá»ΓÑp«ó EGA, CGA *
- * *
- * éδσ«ñ¡«Ñ º¡áτÑ¡¿Ñ: *
- * ------------------ *
- * 0 -Γ¿» áñá»ΓÑpá MDA *
- * *
- * 1 -Γ¿» áñá»ΓÑpá CGA *
- * *
- * 3 -Γ¿» áñá»ΓÑpá EGA *
- * *
- * *
- ****************************************************************/
-
-
- int EGACGA (void)
-
-
- {
-
-
- union REGS regs;
-
- int AL;
-
- regs.h.ah = 0x12;
-
- regs.h.bl = 0x10;
-
- regs.x.cx = 0;
-
- int86 (0x10, ®s, ®s);
-
- if (regs.x.cx != 0) return (3);
-
- else
- {
- int86 (0x11, ®s, ®s);
-
- AL = regs.h.al & 0x30;
-
- if (AL == 0x30) return (0); /* MDA */
-
- else return (1);
- }
-
- }
-